import { App } from 'vue';
import PuiButton from './Button/button.vue';
import PuiTag from './Tag/tag.vue';
import PuiIcon from './Icon/icon.vue';
import PuiSvg from './Svg/svg.vue';
import PuiSwitch from './Switch/switch.vue';
import PuiSelector from './Selector/selector.vue';
import PuiSearch from './Search/search.vue';
import PuiPopper from './Popper/popper.vue';
import PuiInput from './Input/input.vue';
import PuiCheckbox from './Checkbox/checkbox.vue';
import PuiRadio from './Radio/radio.vue';
import PuiRadioGroup from './RadioGroup/radioGroup.vue';
import PuiTabs from './Tabs/tabs.vue';
import PuiTab from './Tab/tab.vue';
import PuiDialog from './Dialog/dialog.vue';
import PuiTree from './Tree/tree.vue';
import PuiCascader from './Cascader/cascader.vue';
import PuiTreeChildren from './TreeChildren/treeChildren.vue';
import PuiCollapse from './Collapse/collapse.vue';
import PuiDrawer from './Drawer/drawer.vue';
import PuiSlider from './Slider/slider.vue';
import PuiToolbar from './Toolbar/toolbar.vue';
import PuiAside from './Aside/aside.vue';
import PuiContainer from './Container/container.vue';
import PuiHeader from './Header/header.vue';
import PuiFooter from './Footer/footer.vue';
import PuiMain from './Main/main.vue';
import PuiColorPicker from './ColorPicker/colorPicker.vue';
import PuiWindow from './Window/window.vue';
import PuiTable from './Table/table.vue';
import PuiDropdown from './Dropdown/dropdown.vue';
import PuiInputNumber from './Input-number/inputNumber.vue';
// 所有组件列表
const components: any[] = [
  PuiButton,
  PuiIcon,
  PuiSvg,
  PuiSwitch,
  PuiSelector,
  PuiPopper,
  PuiInput,
  PuiSearch,
  PuiCheckbox,
  PuiRadio,
  PuiRadioGroup,
  PuiTag,
  PuiTabs,
  PuiTab,
  PuiDialog,
  PuiTree,
  PuiCascader,
  PuiTreeChildren,
  PuiCollapse,
  PuiDrawer,
  PuiSlider,
  PuiToolbar,
  PuiAside,
  PuiContainer,
  PuiHeader,
  PuiFooter,
  PuiMain,
  PuiColorPicker,
  PuiWindow,
  PuiTable,
  PuiDropdown,
  PuiInputNumber,
];

// 定义 install 方法， App 作为参数
const install = (app: App): void => {
  // 遍历注册所有组件
  components.map((component) => {
    app.component(component.name as string, component);
  });

  // components.map((component) => app.component(component, component))
};

export {
  PuiButton,
  PuiIcon,
  PuiSvg,
  PuiSwitch,
  PuiSelector,
  PuiPopper,
  PuiInput,
  PuiSearch,
  PuiCheckbox,
  PuiRadio,
  PuiRadioGroup,
  PuiTag,
  PuiTabs,
  PuiTab,
  PuiDialog,
  PuiTree,
  PuiCascader,
  PuiTreeChildren,
  PuiCollapse,
  PuiDrawer,
  PuiSlider,
  PuiToolbar,
  PuiAside,
  PuiContainer,
  PuiHeader,
  PuiFooter,
  PuiMain,
  PuiColorPicker,
  PuiWindow,
  PuiTable,
  PuiDropdown,
  PuiInputNumber,
};

export default {
  install,
};
